package com.tedu.day02.oop;
/*
* this关键字---super关键字---使用完全一致
*不需要继承---当前类，指代当前
*使用方式：调用当前类的属性、方法、构造器
*           this.属性            【当前类的属性赋值】
*                                   出现方法中
*                                   区别当前类的属性与参数“名称”一致
*           this.方法
*           this()                  多个有参构造器
*
*   面试题：this跟super关键字区别？
*       this     调用本类的属性、方法、构造器
*       super    调用父类的属性、方法、构造器，存在继承关系，使用super
*       this()与super()---传递参数：赋值
*       this()   调用本类的其他构造器--构造器首行
*       super()  调用父类的其他构造器--子类构造器首行
*   请问this()与super()可以同时出现在对象构造器中？
* */
public class This关键字 {
    int i;  //属性---很少赋值【声明未赋值】---构造器或者方法中赋值
    int j;  //属性---很少赋值【声明未赋值】---构造器或者方法中赋值
    //构造器：有参

    public This关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }
    //构造器：有参        需求：创建1个参数对象，给i跟j赋值【跟一样super()】
    public This关键字(int i) {
        this(3,4);  //调用本类其他有参构造器===传参
        this.i=i;   //常见：this.属性【当前类下属性】=参数
                    //赋值  this.i=1;
    }
    //方法--this.方法
    public void testI(){
        System.out.println("我是I");
    }
    public void testJ(){    //调取---输出：我是I   我是J
        this.testI();
        System.out.println("我是J");
    }

    public static void main(String[] args) {
        System.out.println(new This关键字(1).j);     //属性没有输出语句
//        new This关键字(1).testJ();     //方法有输出语句
    }
}
